I’m a European (French)
student recently graduated in computer science applied to business management.
I’m member of the Moov’Art’ association which activity is centered around
audiovisual projects. As my passion is around sound, music and multimedia, I
also decided to contribute in the development of Buzz’s plugins. And that’s it,
after months , one of my dreams is coming true : my first DSP effect, the Pitch
Wizard !
So what can do this machine
for you ?
Here’s a short list of what
features you can manage with it :
Many old generators couldn’t manage the new pitch wheel MIDI
messages. Plug in your MIDI keyboard to your computer, connect the
Pitch Wizard after a generator, set up the same midi channel for both generator
and Pitch Wizard, set the PW amplitude, play and enjoy !
a Tired of sung or speech samples that you can’t transpose
without getting a Mickey mouse’s or Dark Vador’s voice ? Select the Formant
process in the Pitch Wizard tracks and transpose them as you wish (don’t expect
more than 1 octave up and down : some things still remain utopia)
b Do you feel lazy and have a great CPU : make your chords
dynamically by adding tracks to the Pitch Wizard and setting the relative
transpositions on each track. One key pressed, a chord out of your speakers !
c Do you want to apply different effects to each Pitch
Wizard track (delay on the higher chord partial, vibrato on the lower, etc
etc): select an AuxBus channel for each track and connect the desired effects
after the AuxReturn machines !
d Tired of recurrent pad presets : connect Pitch Wizard after a
generator, set up the length of scaling slides and tweak it, you’ll getting
more evolutive pads with moving partials !
t Dedicated to control the formant
processing according to different voice types … Just try it to understand.
u Size of the FFT transform used to
process analysis and synthesis (in some cases this value has to be tweaked to
avoid strange sounds in Formant mode, sorry. I’m still working on it)
Adjust this value according to the sample rate of your audio driver and to the
“voice” to process (Higher fundamentals require less FFT size, Lower
fundamentals require more)
Here’s a informational note for sample rates (for “good” results):
Harmonic mode Formant mode
<= 44 kHz: 256/512 128/256
48 kHz: 512/1024
256/512
96 kHz :
1024/2048
512/1024
>96kHz interpolate and
try interpolate and try
This parameter will become an attribute when I fix the problems with Formant
recognition.
v Pitch wheel range in semitones
w Position of the pitch wheel
x Initial value of transposition when
setting a scaling slide length, instantaneous transposition level else (doesn’t
modify the sound while a slide is in progress, just sets the next value to
use).
y Final value of transposition when
setting a scaling slide length, instantaneous transposition level else
(modifies the sound while a slide is in progress by interpolating values).
z Length of the scaling slide
{ Processing type : Harmonics is good
only for instruments, Formants can be selected for both human voice and
instruments (listen and make your choice)
| Redirection to one or two internal
auxiliary bus channels of Buzz (Mono or stereo mode)
} Volume of this track
u Overlap rate of synthesis frames
after each inverse FFT (Fast Fourier Transform)
v MIDI channel used to control the
pitch wheel parameter
w Anti-click system inertia when
triggering the Gain parameter
x Anti-click system inertia when
triggering the pitch wheel position
Pitch Wizard
License
Pitch Wizard (c)
Version 0.2 beta (March 2004)
Buzz Effect : Pitch Scaling routines
COPYRIGHT
2003 Marc
Alvarez (mad-knight@wanadoo.fr)
Permission
to use, copy and distribute this software and its
documentation
for any purpose and FOR FREE is hereby granted without fee, provided that
the
above copyright notice and this license appear in all source copies.
THIS
SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF
ANY
KIND. The code is not distributed. It remains property of the author and should
not be recovered from reverse engineering neither sold or distributed in any
way.
This software is based on freeware programs :
The FFT engine is a
freeware code :
FFTReal
Version 1.03, 2001/06/15
Class of Fourier transformation of real data (FFT and IFFT)
Portable ISO C++
(c) Laurent de Soras ldesoras@club-internet.fr
The Pitch Scaling
algorithm is DERIVED from a freeware code :
NAME:
smsPitchScale.cp
VERSION:
1.01
HOME
URL: http://www.dspdimension.com
KNOWN
BUGS: none
SYNOPSIS:
Routine for doing pitch scaling while maintaining
duration
using the Short Time Fourier Transform.
DESCRIPTION:
The routine takes a pitchScale factor value which is between 0.5
(one
octave down) and 2. (one octave up). A value of exactly 1 does not change
the
pitch. numSampsToProcess tells the routine how many samples in indata[0...
numSampsToProcess-1]
should be pitch scaled and moved to outdata[0 ...
numSampsToProcess-1].
The two buffers can be identical (ie. it can process the
data
in-place). fftFrameSize defines the FFT frame size used for the
processing.
Typical values are 1024, 2048 and 4096. It may be any value <=
MAX_FFT_FRAME_LENGTH
but it MUST be a power of 2. osamp is the STFT
oversampling
factor which also determines the overlap between adjacent STFT
frames.
It should at least be 4 for moderate scaling ratios. A value of 32 is
recommended
for best quality. sampleRate takes the sample rate for the signal
in
unit Hz, ie. 44100 for 44.1 kHz audio. The data passed to the routine in
indata[]
should be in the range [-1.0, 1.0), which is also the output range
for the data.
COPYRIGHT
1999 Stephan M. Sprenger <sms@dspdimension.com>
The Wide Open License (WOL)
Permission
to use, copy and distribute this software and its
documentation
for any purpose is hereby granted without fee, provided that
the
above copyright notice and this license appear in all source copies.
THIS
SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF
ANY
KIND. See http://www.dspguru.com/wol.htm for more
information.
I used Oskari’s XDSP library :
Available @ http://www.jeskola.net
I wish to thank many people
that contributed in a way to this project :
- Oskari Tammelin for
having made Buzz, the API, and the XDSP library @ www.jeskola.net
- Marc Van Agteren who
keeps the treasures @ www.buzzmachines.com
- DJ Laser @ www.buzzxp.com
- Edward Blake for his detailed
guide to build Buzz machines
- Miko Appo for his helpful
machine template @ http://web.hibo.no/~mva/dev/ch_template106.zip
- Stephen Sprenger for his
useful article about pitch scaling and a piece of his code @ www.dspdimension.com
- Steven W. Smith for his
wonderful DSP book @ www.dspguide.com
- Laurent de Soras which
FFTReal routines are the core of this plugin (I don’t remember where I got his
package but here’s his mail : ldesoras@club-internet.fr
- Matteo
Frigo’s team who is in charge of the FFTW project
(ultra fast FFTs) @ www.fftw.org
(I wish I could use FFTW routines but I would have to distribute Buzz sources
to comply with the GNU GPL, and as Buzz
is not open source I used FFTReal)
- My girlfriend who
supported me along this long and hard trip (no mail neither picture, sorry ...)
- all Buzz community
members that help keeping this virtual studio the best as it can be
You can send a mail to mad.knight@laposte.net
for comments, suggestions, bug reports, songs made with this plugin, or even
commercial adaptation requests and job proposition ...